#include<cstdio>
#include<algorithm>
#include<numeric>
using namespace std;
int n,m,t=1,h=1,ans=2147483647,a[100020],f[100020],q[100020];
int main()
{
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
	    scanf("%d",&a[i]);
	for (int i=1;i<=n;i++)
	{
		while (h<=t&&q[h]<i-m) h++;       //超出范围
		f[i]=f[q[h]]+a[i];                //状态转移
		while (h<=t&&f[i]<=f[q[t]]) t--;  //递增，队尾比当前小，对后面的答案没有贡献
		q[++t]=i;                         //保存编号
	}
	for (int i=n-m+1;i<=n;i++)
	    ans=min(ans,f[i]);
	printf("%d\n",ans);
	return 0;
}
